uses crt;
type
string_mas = array [1..100000] of string;
variable_info = record
    name:string;
    vartype:string;
    var_sign:byte;
end;

{Описание указателя на структуру.}
Pmystruct = ^mystruct;

mystruct = record
    id:integer;
    name:string;
    from_line:integer;
    to_line:integer;
    list_of_variables: array[1..100000] of variable_info;
    nested_items: array[1..10000] of Pmystruct;
    {Здесь все сложнее, чем я вначале говорил. Поле может быть ТОЛЬКО УКАЗАТЕЛЕМ на структуру того же типа. 
    Это связано с тем, что до создания переменной типа структура, необходимо вычислить ее размер, а это можно сделать только если поле указатель.
    Чтобы этим пользоваться, мне нужно будет рассказать про указатели и про динамическую память в следующий раз. Пока вы не сможете пользоваться полем nested_items}
end;
Var 
 p:mystruct;
begin
    
end.